Package com.python.pydev.refactoring.tdd

Source Code of com.python.pydev.refactoring.tdd.TddCodeGenerationQuickFixParticipantTest

/**
* Copyright (c) 2005-2011 by Appcelerator, Inc. All Rights Reserved.
* Licensed under the terms of the Eclipse Public License (EPL).
* Please see the license.txt included with this distribution for details.
* Any modifications to this file must keep this entire header intact.
*/
package com.python.pydev.refactoring.tdd;

import java.util.List;

import org.eclipse.jface.text.Document;
import org.eclipse.jface.text.contentassist.ICompletionProposal;
import org.python.pydev.core.TestDependent;
import org.python.pydev.core.docutils.PySelection;
import org.python.pydev.core.log.Log;
import org.python.pydev.core.structure.CompletionRecursionException;
import org.python.pydev.editor.codecompletion.PyCodeCompletion;
import org.python.pydev.editor.codecompletion.revisited.CodeCompletionTestsBase;
import org.python.pydev.editor.codecompletion.revisited.modules.CompiledModule;
import org.python.pydev.editor.refactoring.AbstractPyRefactoring;

import com.aptana.shared_core.callbacks.ICallback;
import com.python.pydev.refactoring.refactorer.Refactorer;

/**
* @author Fabio
*
*/
public class TddCodeGenerationQuickFixParticipantTest extends CodeCompletionTestsBase {

    public static void main(String[] args) {

        try {
            //DEBUG_TESTS_BASE = true;
            TddCodeGenerationQuickFixParticipantTest test = new TddCodeGenerationQuickFixParticipantTest();
            test.setUp();
            test.testDontCreate();
            test.tearDown();
            System.out.println("Finished");

            junit.textui.TestRunner.run(TddCodeGenerationQuickFixParticipantTest.class);
        } catch (Throwable e) {
            e.printStackTrace();
        }
    }

    /*
     * @see TestCase#setUp()
     */
    public void setUp() throws Exception {
        super.setUp();
        AbstractPyRefactoring.setPyRefactoring(new Refactorer());
        CompiledModule.COMPILED_MODULES_ENABLED = false;
        this.restorePythonPath(TestDependent.GetCompletePythonLib(true) +
                "|" + TestDependent.PYTHON_PIL_PACKAGES +
                "|"
                + TestDependent.TEST_PYSRC_LOC +
                "configobj-4.6.0-py2.6.egg", false);

        this.restorePythonPath(false);
        codeCompletion = new PyCodeCompletion();
        TddCodeGenerationQuickFixParticipant.onGetTddPropsError = new ICallback<Boolean, Exception>() {

            public Boolean call(Exception e) {
                throw new RuntimeException("Error:" + Log.getExceptionStr(e));
            }
        };
        PyCodeCompletion.onCompletionRecursionException = new ICallback<Object, CompletionRecursionException>() {

            public Object call(CompletionRecursionException e) {
                throw new RuntimeException("Recursion error:" + Log.getExceptionStr(e));
            }

        };
    }

    /*
     * @see TestCase#tearDown()
     */
    public void tearDown() throws Exception {
        CompiledModule.COMPILED_MODULES_ENABLED = true;
        super.tearDown();
        AbstractPyRefactoring.setPyRefactoring(null);
        PyCodeCompletion.onCompletionRecursionException = null;
    }

    public void testCreate() throws Exception {
        String s = "" +
                "class MyClass(object):\n" +
                "    pass\n" +
                "\n" +
                "def makeTestObj():\n"
                +
                "    return MyClass()\n" +
                "\n" +
                "def makeTestObj2():\n" +
                "    return makeTestObj()\n" +
                "\n"
                +
                "def testName():\n" +
                "    obj = makeTestObj2()\n" +
                "    obj.unimplementedFunction()\n" +
                "";
        TddCodeGenerationQuickFixParticipant participant = new TddCodeGenerationQuickFixParticipant();
        Document doc = new Document(s);
        List<ICompletionProposal> props = participant.getTddProps(new PySelection(doc, s.length() - 1), null, null,
                nature, null, s.length() - 1, null);
        assertContains("Create unimplementedFunction method at MyClass (__module_not_in_the_pythonpath__)",
                props.toArray(new ICompletionProposal[0]));
    }

    public void testDontCreate() throws Exception {
        String s = "" +
                "class MyClass(object):\n" +
                "\n" +
                "    def unimplementedFunction(self):\n" +
                "        pass\n"
                +
                "\n" +
                "def makeTestObj():\n" +
                "    return MyClass()\n" +
                "\n" +
                "def makeTestObj2():\n"
                +
                "    return makeTestObj()\n" +
                "\n" +
                "def testName():\n" +
                "    obj = makeTestObj2()\n"
                +
                "    obj.unimplementedFunction()\n" +
                "";
        TddCodeGenerationQuickFixParticipant participant = new TddCodeGenerationQuickFixParticipant();
        Document doc = new Document(s);
        List<ICompletionProposal> props = participant.getTddProps(new PySelection(doc, s.length() - 1), null, null,
                nature, null, s.length() - 1, null);
        assertNotContains("Create unimplementedFunction method at MyClass (__module_not_in_the_pythonpath__)",
                props.toArray(new ICompletionProposal[0]));
    }
}
TOP

Related Classes of com.python.pydev.refactoring.tdd.TddCodeGenerationQuickFixParticipantTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.